// -------------------------- async -----------------------------------
// async 用于修饰一个函数，这个函数永远返回 Promise 对象
// async 函数中返回的任何内容，都会包装到 Promise 对象内部（传递给 resolve ）
// async function abc() {
//   return 123;
// }

// let x = abc();

// x.then(res => {
//   console.log(res);
// })

// -------------------------- await ------------------------------------
// await 无法单独使用，它只能出现在 async 函数中
// await 让 JS 引擎等待直到promise完成并返回结果

async function abc() {
  try {
    console.log(1);
    await new Promise((resolve, reject) => { resolve() });
    console.log(2);
  } catch (e) {
    console.log(e);
  }
}

abc();

// abc().catch(err => {
//   console.log(err);
// });

console.log(3);



